Advent of internet leading to increased connectivity within and amongst enterprises, and rapid evolution of technology platforms have contributed to significant increase in business dynamics in recent years. The increased dynamics puts new demands on businesses while opening up new opportunities that need to be addressed in an ever-shrinking time window.
Traditional GUI of the business applications typically end up with hard-coding the operating context in their implementation. As a result, adaptation to a change in its operating environment leads to opening up of GUI of application implementation. This adaptation process results in unacceptable responsiveness. It should be possible to configure a GUI of business application for the desired operating environment. New opportunities may put unconceived demands on GUI of business applications; it should be possible to quickly extend the existing implementation of GUI without breaking parts which are unrelated to the desired extension. It should also be possible to support such adaptations at different levels of latency i.e. application design-time, application installation-time and application run-time. Moreover, large enterprises may want to impose some discipline in introducing such adaptations through, say, roles-n-responsibility structure.
Some of the inventions which deal in developing the Graphical User Interface (GUI) for business application product lines are:
U.S. Pat. No. 7,072,810 filed by Ramanathan et al teaches that a method for modeling and generating user windows of a graphical user interface of a software application comprising steps of: (a) providing at least one wintype and associated window specifications as input to a software tool; (b) identifying controls for each group box and table within the at least one wintype; (c) creating winclasses for each group box and table of the at least one wintype; (d) providing mapping between the window attributes and controls of the winclass; (e) identifying other parameters available through interaction with window buttons; and (f) instantiating each GUI window as an instance of the wintype including arguments to parameters expected by the wintype.
U.S. Pat. No. 7,369,975 fled by Ramanathan et al teaches that a system and software tool for modeling and generating user windows of a graphical user interface of a software application comprising: a modeling component for creating models of window types and instances thereof; a conversion component for converting model information into ASCII code; a library component for storing reusable code; and a window generation component for generating graphical user interfaces windows; characterized in that graphical user interface windows are generated in a batch process wherein certain fields shared by the windows are automatically populated with the appropriate application code taken from or inherited from the wintype model.
Numerous other techniques for model driven development of GUIs have been suggested (Shauerhuber, A., Schwinger, W., Retschitzegger, W., Wimmer, M., and Kappelet, G. 2008, A survey on Web Modeling Approaches for Ubiquitous Web Applications; International Journal of Web Information Systems, Vol. 4, pp. 234-305), but a very few had the required maturity for usage in large enterprise business applications.
AndroMDA (AndroMDA, An Open Source MDA Generator, http://galaxy.andromda.org/) proposes a UML Profile (AndroMDA BPM4Struts Cartridge UML Profile for GUI Modeling, http://galaxy.andromda.org/docs-3.2/andromda-bpm4struts-cartridge/profile.html) for annotating activity diagrams with GUI information to indicate the activities requiring screens, the widgets to be used for message elements etc. The code generator translates this model to a skeleton code which needs to be enhanced by the developer. Its approach of using Tiles (Apache Tiles, An Open Source Templating Framework, http://tiles.apache.org/framework/index.html) to separate user written code and generated code is not practical for large application development. Further, the specification language is too sparse to express the complexities of today's business application screens.
WebML (Web Modeling Language, http://www.webml.org/) is a web application modeling language that specifies the composition and navigation of web application by defining views over the Entity Relationship Model of the application. The hypertext model is then augmented with a presentation model. All three models are used for code generation. This approach works well for data intensive small to medium web applications where generation of Search and Create/Modify/Delete (CRUD) screens alone gives good productivity advantage. Applicability of this technique for large enterprise applications is very limited as the screens are typically more complex than CRUD screens. Most of these approaches focus on a functional specification of GUIs using high level abstractions and filling in the details by a developer.
More particularly, the shortcomings with the prior arts are that the computational cost as well computational time is high for creating new GUIs for Database-centric Business application Product Lines different enterprises, even though from the same business domain. Yet another shortcoming with the prior art is maintenance and evolution problems for creation of new GUIs for business applications for different enterprises, even though from the same business domain due to significant overlap in their requirements and in specifications. Being ignorant of this overlap would mean rework, and result in specification redundancy.
Thus, In light of the above mentioned prior arts it is evident that there is a need to have a solution for developing extensible and configurable Graphical User Interfaces (GUIs) for Database-centric Business application Product Lines, wherein such solution should involve use of model driven techniques.
Other features and advantages of the present invention will be explained in the following description of the invention having reference to the appended drawings.